home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
LANG
/
C
/
GCC
/
V2-4-5
/
GCCEXTSR
/
Virtual
/
!Virtual
/
c
/
lib
< prev
next >
Wrap
Text File
|
1993-09-06
|
1KB
|
80 lines
/*
* lib.c
* Part of the !Virtual distribution
* (c) bdb/nas/fo, 1992-3
*/
#include "swis.h"
#include "swiv.h"
#include "lib.h"
void strcpy(char *p,char *q)
{
while ((*p++=*q++)!=0)
;
}
void memcpy(char *p, char *q, int n)
{
while (n-->0)
*p++=*q++;
}
int strlen( char *p )
{
int n=0;
while (*p++)
n++;
return n;
}
int xtoi( char *p )
{
int v=0;
if (swix(OS_ReadUnsigned,IN(R0|R1)|OUT(R2),16,p,&v))
return 0;
return v;
}
int sizetoi( char *p )
{
int v=0;
if (swix(OS_ReadUnsigned,IN(R0|R1)|OUT(R1|R2),10,p,&p,&v))
return 0;
if (*p=='K' || *p=='k')
v*=1024;
if (*p=='M' || *p=='m')
v*=1024*1024;
return v;
}
void *alloc(int size)
{
void *addr;
swi(OS_Module, IN(R0|R3)|OUT(R2), 6, size, &addr);
return addr;
}
void free(void *addr)
{
if (addr)
swi(OS_Module, IN(R0|R2), 7, addr);
}
#ifndef print_f
#define print_f 0xBe00
#endif
void printf(char *format,...)
{
int *a=(int *)&format+1;
swi(print_f,IN(R0|R1|R2|R3|R4|R5|R6|R7|R8),format,a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]);
}
void _printf(char *format,...)
{
int *a=(int *)&format+1;
swi(print_f,IN(R0|R1|R2|R3|R4|R5|R6|R7|R8),format,a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]);
}